<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <link href="../../style.css" rel="stylesheet" type="text/css">
    <link rel="icon" href="../../images/PETSc_RGB-logo.png" type="image/png" sizes="16x16">
    <title>PETSc: Documentation: Changes: 3.10</title>
  </head>
  <body>

    <div id="logo">
      <h1>PETSc</h1>
    </div>

    <div id="header">
      <h1><!--begin-->Documentation: Changes: 3.10<!--end--></h1>
    </div>

    <hr>

    <div id="sidebar">
      <ul>
        <li><a href="../../index.html">Home</a></li>
        <li><a href="../../download/index.html">Download</a></li>
        <li><a href="../../features/index.html">Features</a></li>
        <li>
          <a href="../../documentation/index.html">Documentation</a>
          <ul>
            <li><a href="../index.html">Manual pages and Users Manual</a></li>
            <li><a href="../referencing.html">Citing PETSc</a></li>
            <li><a href="../tutorials/index.html">Tutorials</a></li>
            <li><a href="../installation.html">Installation</a></li>
            <li><a href="../saws.html">SAWs</a></li>
            <li>
              <a href="index.html">Changes</a>
              <ul>
                <li><a href="dev.html">dev</a></li>
                <li><a href="313.html">3.13</a></li>
                <li><a href="312.html">3.12</a></li>
                <li><a href="311.html">3.11</a></li>
                <li><span class="current">3.10</span></li>
                <li><a href="39.html">3.9</a></li>
                <li><a href="38.html">3.8</a></li>
                <li><a href="37.html">3.7</a></li>
                <li><a href="36.html">3.6</a></li>
                <li><a href="35.html">3.5</a></li>
                <li><a href="34.html">3.4</a></li>
                <li><a href="33.html">3.3</a></li>
                <li><a href="32.html">3.2</a></li>
                <li><a href="31.html">3.1</a></li>
                <li><a href="300.html">3.0.0</a></li>
                <li><a href="233.html">2.3.3</a></li>
                <li><a href="232.html">2.3.2</a></li>
                <li><a href="231.html">2.3.1</a></li>
                <li><a href="230.html">2.3.0</a></li>
                <li><a href="221.html">2.2.1</a></li>
                <li><a href="220.html">2.2.0</a></li>
                <li><a href="216.html">2.1.6</a></li>
                <li><a href="215.html">2.1.5</a></li>
                <li><a href="213.html">2.1.3</a></li>
                <li><a href="212.html">2.1.2</a></li>
                <li><a href="211.html">2.1.1</a></li>
                <li><a href="21.html">2.1.0</a></li>
                <li><a href="2029.html">2.0.29</a></li>
                <li><a href="2028.html">2.0.28</a></li>
                <li><a href="2024.html">2.0.24</a></li>
                <li><a href="2022.html">2.0.22</a></li>
                <li><a href="2018-21.html">2.0.18-21</a></li>
                <li><a href="2017.html">2.0.17</a></li>
                <li><a href="2016.html">2.0.16</a></li>
                <li><a href="2015.html">2.0.15</a></li>
              </ul>
            </li>
            <li><a href="../bugreporting.html">Bug Reporting</a></li>
            <li><a href="../codemanagement.html">Code Management</a></li>
            <li><a href="../faq.html">FAQ</a></li>
            <li><a href="../license.html">License</a></li>
            <li><a href="../linearsolvertable.html">Linear Solver Table</a></li>
            <li><a href="../nonlinearsolvertable.html">Nonlinear Solver Table</a></li>
	    <li><a href="../taosolvertable.html">TAO Solver Table</a></li>
          </ul>
        </li>
        <li><a href="../../publications/index.html">Applications/Publications</a></li>
        <li><a href="../../miscellaneous/index.html">Miscellaneous</a></li>
        <li><a href="../../miscellaneous/external.html">External Software</a></li>
        <li><a href="https://docs.petsc.org/en/latest/developers/index.html">Developers Site</a></li>
      </ul>
    </div>

    <!--begin-->

    <style type="text/css">
      h2 {
        color: red;
      }

      h4 {
        font-weight: bold;
        text-decoration: underline;
      }
    </style>

    <div id="main">

      <div align="center">
        <h2><a name="CHANGES">CHANGES in the PETSc 3.10 Version</a></h2>
      </div>

      <h4>General:</h4>
      <ul>
        <li>Removed <kbd>--with-errorchecking</kbd> configure option.</li>
        <li>Added new command line option <kbd>-viewfromoptions</kbd> to disable <code>XXXViewFromOptions()</code> calls.</li>
      </ul>
      <h4>Configure/Build:</h4>
      <ul>
        <li>Removed <kbd>--with-viewfromoptions</kbd> configure option in favor of the new command line option <kbd>-viewfromoptions</kbd>.</li>
        <li>Following options are renamed to have more consistant names:<pre>
          --with-packages-dir          -> --with-packages-download-dir
          --with-external-packages-dir -> --with-packages-build-dir
          --package-dirs               -> --with-packages-search-path
          --search-dirs                -> --with-executables-search-path</pre></li>
      </ul>
      <h4>IS:</h4>
      <h4>PetscDraw:</h4>
      <h4>PF:</h4>
      <h4>Vec:</h4>
      <h4>VecScatter:</h4>
      <h4>PetscSection:</h4>
      <h4>Mat:</h4>
      <ul>
        <li>MatNullSpaceTest() now respects the options prefix of the
        provided Mat.</li>
        <li>Added MatMatTransposeSolve() to MUMPS interface.</li>
        <li>Added -mat_mumps_use_omp_threads [m] option to better support OpenMP in MUMPS.</li>
        <li>Added MatPartitioningViewFromOptions().</li>
        <li>Added MatPartitioningApplyND() to compute a nested dissection ordering of a matrix.</li>
        <li>Deprecated MatISGetMPIXAIJ() in favour of MatConvert().</li>
        <li>Added new matrix types for limited-memory variable-metric (MATLMVM) approximations of Jacobians.</li>
        <li>Added MATAIJSELL, a sub-type of AIJ that uses SELL format internally for SELL-optimized operations.</li>
        </ul>
      <h4>PC:</h4>
      <ul>
        <li> PCKSPGetKSP() now raises an error if called on a PC which is not of type PCKSP </li>
        <li> Added PCKSPSetKSP() </li>
        <li> Added new PC based on the new LMVM matrices.</li>
      </ul>
      <h4>KSP:</h4>
      <ul>
        <li>The KSP viewing options have changed. Now
          <ul>
            <li>-ksp_compute_eigenvalues becomes -ksp_view_eigenvalues ascii</li>
            <li>-ksp_plot_eigenvalues becomes -ksp_view_eigenvalues draw</li>
            <li>-ksp_plot_eigencontours becomes -ksp_view_eigenvalues draw::draw_contour</li>
            <li>-ksp_compute_eigenvalues_explicitly becomes -ksp_view_eigenvalues_explicit ascii</li>
            <li>-ksp_plot_eigenvalues_explicitly becomes -ksp_view_eigenvalues_explicit draw</li>
            <li>-ksp_compute_singularvalues becomes -ksp_view_singularvalues ascii</li>
            <li>-ksp_final_residual becomes -ksp_view_final_residual</li>
          </ul>
        </li>
        <li><code>KSPLSQR</code>
          <ul>
            <li>Computes now an estimate of the operator's norm in the same way as Saunders and MATLAB, and uses it in the type-specific stopping criterion <code>KSPLSQRConvergedDefault()</code>; this now gives the same number of iterations as MATLAB's <code>lsqr()</code>.</li>
            <li>Added <code>-ksp_lsqr_exact_mat_norm</code> and <code>KSPLSQRSetExactMatNorm()</code> to optionally compute and use the exact Frobenius norm instead of the estimate.</li>
            <li><code>KSPLSQRMonitorDefault()</code> and <code>-ksp_lsqr_monitor</code> now additionally print the (estimate of) the operator's norm.</li>
            <li>Allow setting <code>-ksp_convergence_test lsqr</code> (it's a default for <code>KSPLSQR</code>, though).</li>
            <li><code>KSPLSQRSetStandardErrorVec()</code> is replaced by <code>KSPLSQRSetComputeStandardErrorVec()</code> which now specifies whether standard error vector should be computed instead of setting the vector;</li>
            <li>likewise, option <code>-ksp_lsqr_set_standard_error</code> is replaced by <code>-ksp_lsqr_compute_standard_error</code>.</li>
            <li>Renamed <code>KSPLSQRGetArnorm()</code> to <code>KSPLSQRGetNorms()</code> and removed its <code>rhs_norm</code> argument.</li>
            <li>Renamed <code>KSPLSQRDefaultConverged()</code> to <code>KSPLSQRConvergedDefault()</code> merged with <code>KSPConvergedLSQR()</code>.</li>
          </ul>
        </li>
      </ul>
      <h4>SNES:</h4>
      <ul>
        <li>SNESSetTolerances() and -snes_max_funcs now accept -1 to indicate unlimited number of function evaluations.</li>
        </ul>
      <h4>SNESLineSearch:</h4>
      <h4>TAO:</h4>
        <ul>
          <li>Added bound-constrained Newton-Krylov methods (BNLS, BNTR, BNTL).</li>
          <li>All quasi-Newton methods updated to use the new LMVM Mat objects.</li>
          <li>Added a bound-constrained quasi-Newton line search (BQNLS) method that re-uses BNLS infrastructure to replace BLMVM on next release.</li>
          <li>Bound-constrained conjugate gradient method expanded with new CG update types and nonlinear preconditioning.</li>
          <li>Removed <code>-tao_type test</code>.</li>
          <li>Gradient testing can now be accessed with the options <code>-tao_test_gradient</code>, <code>-tao_test_gradient_view</code>, and Hessian testing can be done with <code>-tao_test_hessian</code>, <code>-tao_test_hessian_view</code> (also works for matrix-free Hessian).</li>
        </ul>
      <h4>TS:</h4>
      <ul>
        <li>Added symplectic time integrators for separable Hamiltonian systems (-ts_type basicsymplectic). </li>
      </ul>
      <h4>DM/DA:</h4>
      <ul>
        <li>Renamed <code>DMDAGetReducedDMDA()</code> to <code>DMDACreateCompatibleDMDA()</code>.</li>
        <li>Added DMGetCompatibility() and implementation for DMDA</li>
      </ul>
      <h4>DMPlex:</h4>
      <ul>
        <li>Added an interface DM and boundary label to DMPlexCreateHybridMesh()</li>
        <li>More refined control of <code>DMView()</code> when <code>PetscViewerType=PETSCVIEWERHDF5</code>. <code>PetscViewerFormat</code> can now be one of <code>{PETSC_VIEWER_HDF5_VIZ, PETSC_VIEWER_HDF5_XDMF, PETSC_VIEWER_HDF5_PETSC, PETSC_VIEWER_DEFAULT}</code>.</li>
        <li>Parallel mesh load (i.e. mesh distributed right from beginning) with <code>DMLoad()</code>, <code>PetscViewerType=PETSCVIEWERHDF5</code> and <code>PetscViewerFormat=PETSC_VIEWER_HDF5_XDMF</code>, or <code>DMPlexCreateFromFile()</code> and <code>-dm_plex_create_from_hdf5_xdmf</code>.</li>
      </ul>
      <h4>PetscViewer:</h4>
      <li> Added argument to <code>PetscViewerVTKAddField()</code> to allow skipping of DM check as fields are added</li>
      <h4>SYS:</h4>
      <h4>AO:</h4>
      <h4>Sieve:</h4>
      <h4>Fortran:</h4>
    </div>

    <!--end-->

    <hr>

  </body>
</html>
